# 10.31声明函数
# def shi():
#     print("石家庄")
# shi()
#
# # def add():
#     a=3
#     b=5
#     s=a+b
#     print(s)
#     return a
# # 调用
# c=add()
# print(c)

# 函数的参数传递
# 第一组 常量
#  def add(a,b):
#     print(+b)
#
# add(1,3)
#
# # 第二组 变量
# a=1
# b=3
# add(a,b)
#
# # 第三组 表达式
# add(2*3,4*5)
#
# c=3
# add(8,c*3)


# 位置参数实例
# def score(a,b,c):
#     print("张三成绩为:",a)
#     print('李四成绩为：',b)
#     print('我的成绩为:',c)
#
# score(77,88,99)
#
# # 代码4  组合式
# def reg(name,age,sex='女'):
#     print('姓名：{} 年龄{} 性别:{} '.format(name,age,sex))
#
#
# reg('张三',20)
# reg('李四',21,'男')
#

# 11月5日 可变参数
# def favf(*fru):
#     print('我喜欢的水果有：')
#     for i in fru:
#         print(i)
#
# favf('苹果')
# favf('苹果','梨')
# favf('苹果','梨','桃子','橘子','芒果','香蕉','菠萝','西瓜')

# 参数的值大于2，如果声明函数的时候有其他形参，通常会把可变长参数放在最后
# def show(a,b,*l):
#     print(a)
#     print(b)
#     print(l)
#
# show(1,2,3,4,5,6,7,9,56)
#
#
# def re(a,b,c,d):
#     return a+b,c*d,a-c
#
# ss =re(1,2,3,4)
# print(ss)


# 11月7

# 变量的作用域
# # 局部变量
# def fun():
#     a=20
#     return a
#
# # 全局变量
# a=10
# print(a)
# print(fun())
#
# # 11月12日
# 递归函数(特性：必须有1.return2.规模比上次减少，3.前一次的输出是下一次的输入)
# def f(n):
#     if n <=1:
#         return 1
#     else:
#         return n*f(n-1)
#
# num=int(input('请输入一个正整数:'))
# s=f(num)
# print(num,'的阶乘是:',s)

# 例题1 利用递归计算1~100相加
# def sum(n):
#     if n == 1:
#         return 1
#     else:
#         return n+sum(n-1)
#
# print('1~100相加的和为',sum(100))


# 计算斐波那契数列 F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2)的第N项
# def fibo(n):
#     if n <=2:
#         return 1
#     else:
#         return fibo(n-1)+fibo(n-2)
#
# print('斐波那契数列的第{}项为{}'.format(7,fibo(7)))

# 匿名函数
# <函数名>=lambda<参数列表>：<表达式>
# 使用匿名函数实现a+b+c
sum = lambda a,b,c: a+b+c
print(sum(1,2,3))


# 编写labda函数，参数为正方形的边长M,输出正方型的面积。
fum=lambda m: m**2
print(fun(5))